package com.pro.service;

import com.pro.pojo.JsUserCoupon;
import com.pro.pojo.JsUserCouponUsed;

import java.util.Date;
import java.util.List;

/**
 * ClassName:JsUserCouponService
 * Package:com.pro.service
 * Description:优惠券service
 *
 * @Date:2022/1/10 下午 3:39
 * @Author: WYH
 */
public interface JsUserCouponService {
    /**
     * @Author WYH
     * @Description //TODO 查询微圈列表中数据
     * @Date 下午 3:24 2022/1/12
     * @Param couponName,online,grant，startDate，endDate，limit，page
     * @return  List<JsUserCoupon>
     **/
    List<JsUserCoupon> getAllCoupon(String couponName, String online, String grant, String startDate, String endDate, Integer limit, Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算总条数
     * @Date 下午 3:24 2022/1/12
     * @Param
     * @return  Integer
     **/
    Integer count();

    /**
     * @Author WYH
     * @Description //TODO 修改上线状态
     * @Date 下午 3:24 2022/1/12
     * @Param couponId，online，updateId，updateDate
     * @return true | false
     **/
    Boolean updateCoupon(Integer couponId, Integer online, Integer updateId, Date updateDate);

    /**
     * @Author WYH
     * @Description //TODO 删除优惠券
     * @Date 下午 3:24 2022/1/12
     * @Param couponId
     * @return true | false
     **/
    Boolean delCoupon(Integer couponId);

    /**
     * @Author WYH
     * @Description //TODO 查询优惠券详情
     * @Date 下午 3:24 2022/1/12
     * @Param couponId
     * @return JsUserCoupon
     **/
    JsUserCoupon seeCoupon(Integer couponId);

    /**
     * @Author WYH
     * @Description //TODO 添加优惠券
     * @Date 下午 8:16 2022/1/12
     * @Param   jsUserCoupon
     * @return true | false
     **/
    Boolean addCoupon(JsUserCoupon jsUserCoupon);

    /**
     * @Author WYH
     * @Description //TODO 查询用户优惠券
     * @Date 上午 9:49 2022/1/13
     * @Param limit,page
     * @return  List<JsUserCoupon>
     **/
    List<JsUserCoupon> getAllUserCoupon(String account,String nickname,Integer limit,Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算用户优惠券个数
     * @Date 上午 9:46 2022/1/13
     * @Param
     * @return Integer
     **/
    Integer userCount(String account,String nickname);

    /**
     * @Author WYH
     * @Description //TODO 赠送优惠券中的查询优惠券
     * @Date 下午 7:28 2022/1/13
     * @Param couponName,limit,page
     * @return List<JsUserCoupon>
     **/
    List<JsUserCoupon> getCouponGive(String couponName, Integer limit,Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算赠送优惠券中的查询优惠券个数
     * @Date 下午 7:33 2022/1/13
     * @Param couponName
     * @return  Integer
     **/
    Integer GiveCount(String couponName);

    /**
     * @Author WYH
     * @Description //TODO 为用户添加一个或多个优惠券
     * @Date 下午 8:31 2022/1/13
     * @Param List<JsUserCouponUsed>
     * @return  true | false
     **/
    Boolean addGiveCoupon(List<JsUserCouponUsed> jsUserCouponUsed);
}
